

function compono(){

}

compono.name = "COMPONO";
compono.version = {
	major:2,minor:0,add:0,bug:0,release:0,
	toString:function(){return this.major+"."+this.minor+"."+this.add+"."+this.bug+"."+this.release}
}
compono.toString = function(){
	return this.name+"["+this.version+"]";
}
















/*	*************************************************************************************************************
	
*/
function $(o){
	if(arguments.length > 1){
		for(var i=0,r=[];i<arguments.length;i++){
			r[r.length]=arguments.callee.call(this,arguments[i]);
		}
		return r;
	}
	return typeof(o)=="string"?document.getElementById(o):o;
}



/*	*************************************************************************************************************
	$F('id')				=	value
	$F(<input />)			=	value
	$F('id','id1','id2')	=	[value, value, value, ...]
	$F($T('input'))			=	[value, value, value, ...]
	
*/
function $F(o)
{
	if(!o){
		return arguments.callee.apply(this,$T("form"));
	}
	else if(o.nodeType)
	{
		return arguments.callee.call(this,(o.nodeName.toUpperCase()=="FORM" ? o.elements : $T("input","textarea","select",o)));
	}
	else if(arguments.length>1 || (o.length&&o.constructor!==String))
	{
		var args = (o.length&&o.constructor!==String) ? o : arguments;
		for(var i=0,r=[],f;f=$(args[i]);i++){
			r[r.length]=f;
		}
		return r;
	}
	return $(o).value;
}

/*	*************************************************************************************************************
	$T('div')					=	
*/
function $T(o){
	if(arguments[arguments.length-1].nodeType){
		arguments.pop = Array.prototype.pop;
		scope = arguments.pop();
	}else{
		scope = document;
	}
	if(arguments.length > 1){
		for(var i=0,r=[],z=[],a; (a=arguments[i]) && typeof(a)=="string";i++){
			r = arguments.callee.call(this,a,scope);
			if(r.length){
				z=z.concat(r);
			}
		}
		return z;
	}else if(o.constructor==Array){
		return arguments.callee.apply(this,o);
	}else{
		for(var i=0,e=scope.getElementsByTagName(o),r=[];i<e.length;i++){
			r[r.length]=e[i];
		}
		return r;
	}
}

/*	*************************************************************************************************************
	
*/
function $T1(tag,scope){
	return (scope||document).getElementsByTagName(tag)[0];
}

/*	*************************************************************************************************************
	
*/
function $N(o){
	if(arguments.length>1){
		for(var i=0,r=[],c;c=arguments.callee.call(this,arguments[i]);i++){
			r = r.concat(c);
		}
		return r;
	}
	for(var i=0,r=[],e=document.getElementsByName(o);i<e.length;i++){
		r[r.length]=e[i];
	}
	return r;
}
















